package com.zmn.oms.model.dto.work.refund;

import com.zmn.oms.common.constant.OrderConsts;
import com.zmn.oms.common.dto.OmsOperator;
import com.zmn.oms.common.vo.KVDict;
import com.zmn.oms.model.entity.pay.OrderPay;
import com.zmn.oms.model.entity.review.OmsOrderReview;
import com.zmn.oms.model.entity.work.OrderWork;
import com.zmn.oms.model.vo.remark.OrderRemarkVO;
import lombok.Data;
import lombok.ToString;

import java.util.List;

/**
 * 类描述：退款
 * @author heciqi
 * @date 2019/8/13 12:30
 */
@Data
@ToString(callSuper = true)
public class RefundDTO extends OmsOperator {
    /**
     * 工单状态
     */
    private Integer status;

    /**
     * 工单结果
     */
    private Integer resultStatus;

    /**
     * 退款原因列表
     */
    private List<KVDict> reasonList;

    /**
     * 退款缘由内容
     */
    private String content;

    /**
     * 审核状态
     */
    private Integer reviewStatus;

    /**
     * 退款方式
     * 1 原路返回，2 线下退款
     * @see OrderConsts#ORDER_REFUND_TYPE_ONLINE
     */
    private Integer refundType;

    /**
     * 工程师id
     */
    private Integer masterId;

    /**
     * 工程师name
     */
    private String masterName;

    /**
     * 退款列表
     */
    private List<RefundAmountDTO> refundList;

    /**
     * 退款金额
     */
    private Integer refundAmount;

    /**
     * 公司id
     */
    private Integer companyId;

    /**
     * 公司id
     */
    private String companyName;

    /**
     * 原单师傅列表
     */
    private List<Integer> masterList;

    /**
     * 原单业务模式
     */
    private Integer bizMode;

    /**
     * 订单支付id
     */
    private Long orderPayId;

    /**
     * 目标渠道
     */
    private Integer payTargetChannelId;

    /**
     * 收款人帐号
     */
    private String payeeThirdAccount;

    /**
     * 收款人帐号名称
     */
    private String payeeThirdAccountName;
    /**
     * 收款人银行
     */
    private String payeeThirdAccountBank;

    /**
     * 图片url&退款流水号
     */
    private List<VoucherDataDTO> refundVoucherData;

    /**
     * 是否子公司角色
     */
    private boolean isReview;

    /**
     * 是否需要审核
     */
    private boolean isRefundReview;

    /**
     * 钉钉发起审批部门id
     */
    private Long dingTalkDeptId;

    /**
     * 员工钉钉id
     */
    private String dTalkId;

    /**
     * 历史退款审核
     */
    private OmsOrderReview historyRefundReview;

    /**
     * 历史退款审核
     */
    private OrderPay historyOrderPay;

    /**
     * 历史备注
     */
    private OrderRemarkVO historyRemark;

    /**
     * 源单
     */
    private OrderWork orderWork;

    /**
     * 操作类型
     */
    private Integer opType;

    /**
     * 如果是返修单建退款单，那这个就是返修单id
     */
    private Long refundWorkId;

    // 次卡退款逻辑相关参数

    /**
     * 优惠退款金额
     */
    private Integer discountRefundAmount;

    /**
     * 订单收入退款金额
     */
    private Integer orderRefundAmount;
}
